<?php
class Admin_Form_ThemNDForm extends Zend_Form{
	public function __construct($user_id = null) {
        parent::__construct($user_id);
        
		$this->setName('nguoidung');
		
		$tennguoidung = new Zend_Form_Element_Text('tennguoidung');
		$tennguoidung->setLabel('Tên người dùng :')
					 ->setRequired(true)
				  	 ->setOptions(array('class' => 'inp-form'))
					 ->addValidator('NotEmpty',true);
		$tennguoidung->getValidator('NotEmpty')->setMessage('Tên người dùng không được bỏ trống!');
				
		$email = new Zend_Form_Element_Text('email');
		$email->setLabel('Email :')
			  ->setRequired(true)
			  ->setOptions(array('class' => 'inp-form'))
			  ->addFilters(array('HTMLEntities','StringTrim','StringToLower'))
			  ->addValidator('NotEmpty',true)
			  ->addValidator('EmailAddress',true);
		$email->getValidator('NotEmpty')->setMessage('Email không được bỏ trống!');
		$email->getValidator('EmailAddress')->setMessage('Email không hợp lệ !');
		if($user_id == null)
		{
		$email->addValidator('Db_NoRecordExists',true, array(
				'table' => 'tbl_nguoidung',
				'field' => 'Email'
		));
		}
		else {
			
			$email->addValidator('Db_NoRecordExists',true, array(
					'table' => 'tbl_nguoidung',
					'field' => 'Email',
					'exclude' => array(
							'field' => 'MaND',
							'value' => $user_id)
			));
			
		}
		
		$email->getValidator('Db_NoRecordExists')->setMessage('Email đã tồn tại!');
		
		$tendangnhap = new Zend_Form_Element_Text('tendangnhap');
		$tendangnhap->setLabel('Tên đăng nhập :')
					 ->setRequired(true)
				  	->setOptions(array('class' => 'inp-form'))
					->addValidator('NotEmpty',true)
					->addValidator('alnum')
					->addValidator('StringLength',true,array(8))
					->addFilter('StringTrim');
					
		$tendangnhap->getValidator('NotEmpty')->setMessage('Tên đăng nhập không được bỏ trống!');
		$tendangnhap->getValidator('alnum')->setMessage('Tên đăng nhập phải là chữ cái hoặc số !');
		$tendangnhap->getValidator('StringLength')->setMessage('Tên đăng nhập phải lớn hơn hoặc bằng 8 kí tự !');
		if($user_id == null)
		{
		$tendangnhap->addValidator('Db_NoRecordExists',true, array(
				'table' => 'tbl_nguoidung',
				'field' => 'TenDangNhap'
		));
		}
		else {
			$tendangnhap->addValidator('Db_NoRecordExists',true, array(
					'table' => 'tbl_nguoidung',
					'field' => 'TenDangNhap',
					'exclude' => array(
							'field' => 'MaND',
							'value' => $user_id)
			));
		}
		$tendangnhap->getValidator('Db_NoRecordExists')->setMessage('Tên đăng nhập đã tồn tại!');
		$matkhau = new Zend_Form_Element_Password('matkhau');
		$matkhau->setLabel('Mật khẩu :')
				->setRequired(true)
				->setOptions(array('class' => 'inp-form'))
				->addValidator('NotEmpty',true)
				->addValidator('StringLength',true,array(6))
				->addFilter('StringTrim');
				
		$matkhau->getValidator('NotEmpty')->setMessage('Mật khẩu không được bỏ trống!');
		$matkhau->getValidator('StringLength')->setMessage('Mật khẩu phải lớn hơn hoặc bằng 6 ký tự!');
		
		$xacnhanmatkhau = new Zend_Form_Element_Password('xacnhanmatkhau');
		$xacnhanmatkhau->setLabel('Xác nhận mật khẩu :')
					 	->setRequired(true)
				 		 ->setOptions(array('class' => 'inp-form'))
					   ->addValidator('NotEmpty',true)
					   ->addValidator('Identical', true, 'matkhau');
						
		$xacnhanmatkhau->getValidator('NotEmpty')->setMessage('Xác nhận mật khẩu không được bỏ trống!');
		$xacnhanmatkhau->getValidator('Identical')->setMessage('Mật khẩu xác nhận không đúng!');
		
		$khoa = new Zend_Form_Element_Radio('khoa');
		$khoa->setLabel('Khóa :')
				->setRequired(true);
		$khoa->setMultiOptions(array(
				1 => 'Có',
				0 => 'Không'
				));
		$quyenhan = new Zend_Form_Element_Select('quyenhan');
		$quyenhan->setLabel('Quyền hạn :')
					 ->setRequired(true);
		$quyenhan->setMultiOptions(array(
				'users' => 'Thành viên',
				'admins' => 'Quản trị'
				));

		$this->addElements(array($tennguoidung,
								$email,
								$tendangnhap,
								$matkhau,
								$xacnhanmatkhau,
								$khoa,
								$quyenhan));		
	}
}